---
title: 关于
description: Feat AI 是一个功能强大的智能对话框架，支持多种模型和自定义配置
sidebar:
    order: 1
---

Feat AI 是一个功能强大、灵活且高效的智能对话框架，旨在帮助开发者轻松集成和使用各种智能对话模型。它支持多种模型和自定义配置，提供了丰富的 API 接口，方便用户快速构建智能对话应用。

## 核心功能

Feat AI 提供了以下核心功能：

### 多模型支持

支持多种智能对话模型，如 DeepSeek-R1、Qwen2.5-72B 等，适用于不同的应用场景。Feat AI 提供了统一的接口来访问这些模型，使开发者可以轻松切换和比较不同模型的表现。

### 灵活配置

允许用户自定义 API 配置，如模型选择、API 密钥、系统提示等，满足个性化需求。通过 Options 类，开发者可以灵活地配置各种参数。

### 异步处理

支持异步回调机制，提升应用性能，避免阻塞主线程。通过 CompletableFuture 和回调函数，开发者可以轻松实现异步处理。

### 流式响应

支持流式响应，实时接收模型输出，适用于需要即时反馈的场景。这对于构建聊天机器人等实时交互应用非常有用。

### 向量数据库支持

Feat AI 集成了 Chroma 和 Milvus 向量数据库的支持，可以用于构建基于知识库的问答系统和推荐系统。

### Agent 能力

提供 Agent 功能，支持工具调用、记忆管理、搜索等能力，可以构建更智能的应用。

## 关键接口

### FeatAI 类

`FeatAI` 是框架的入口类，用于创建各种 AI 模型实例。通过静态方法，用户可以创建不同的 AI 模型实例。

```java
public static ChatModel chatModel(Consumer<ChatOptions> consumer)
public static EmbeddingModel embedding(Consumer<EmbeddingOptions> consumer)
public static RerankerModel reranker(Consumer<RerankerOptions> consumer)
```

- **chatModel**：创建对话模型实例，用于发送和处理聊天请求。
- **embedding**：创建嵌入模型实例，用于生成文本的向量表示。
- **reranker**：创建重排序模型实例，用于对搜索结果进行重新排序。

### ChatOptions 类

`ChatOptions` 类提供了丰富的配置选项，允许用户自定义对话模型的行为和环境。

- **baseUrl**：设置模型的基 URL。
- **model**：选择具体的模型。
- **apiKey**：配置 API 密钥。
- **system**：设置系统提示，指导模型的行为。
- **debug**：启用调试模式，打印详细的请求和响应信息。

### ChatModelVendor 类

`ChatModelVendor` 类定义了预设的模型及其元数据，用户可以通过这些静态常量选择不同的模型。

```java
public static final ChatModelVendor DeepSeek_R1 = new ChatModelVendor("DeepSeek-R1", false);
public static final ChatModelVendor Qwen2_5_72B_Instruct = new ChatModelVendor("Qwen2.5-72B-Instruct", true);
```

### ChatModel 类

`ChatModel` 是发送和处理聊天请求的核心类，提供了以下方法：

- **chat**：发送同步聊天请求。
- **chatStream**：发送异步流式聊天请求。
- **onSuccess**：处理成功的响应。
- **onFailure**：处理失败的响应。

## 快速上手

### 初始化和配置

```java
import tech.smartboot.feat.ai.FeatAI;
import tech.smartboot.feat.ai.chat.ChatModel;
import tech.smartboot.feat.ai.chat.ChatModelVendor;

public class ChatDemo {
    public static void main(String[] args) {
        // 创建 ChatModel 实例
        ChatModel chatModel = FeatAI.chatModel(opts -> {
            opts.model(ChatModelVendor.GiteeAI.Qwen2_5_72B_Instruct)
                .system("你是一个乐于助人的助手。")
                .debug(true);
        });
    }
}
```

### 发送同步请求

```java
chatModel.chat("你好，请自我介绍一下。", rsp -> {
    System.out.println("rsp: " + rsp.getContent());
    System.out.println("usage: " + rsp.getUsage());
});
```

### 发送异步流式请求

```java
chatModel.chatStream("你好，请自我介绍一下。", new StreamResponseCallback() {
    @Override
    public void onStreamResponse(String content) {
        System.out.print(content);
    }

    @Override
    public void onCompletion(ResponseMessage responseMessage) {
        System.out.println("\nResponse completed.");
    }

    @Override
    public void onFailure(Throwable throwable) {
        System.err.println("Error: " + throwable.getMessage());
    }
});
```

有关完整示例，请参见 [ChatDemo.java](https://gitee.com/smartboot/feat/blob/master/feat-ai/src/test/java/tech/smartboot/feat/ai/demo/ChatDemo.java)

## 高级功能

### Agent 使用

Feat AI 提供了 Agent 功能，可以构建更智能的应用：

```java
Agent agent = FeatAgent.createAgent(options -> {
    options.name("智能助手")
           .description("一个智能助手，可以回答问题和执行任务")
           .model(ChatModelVendor.GiteeAI.DeepSeek_R1);
});

agent.chat("今天北京天气怎么样？", response -> {
    System.out.println(response.getContent());
});
```

### 向量数据库集成

Feat AI 集成了向量数据库，可以用于构建基于知识库的问答系统：

```java
// 创建 Chroma 向量存储
VectorStore vectorStore = VectorStore.chroma(options -> {
    options.baseUrl("http://localhost:8000");
});

// 添加文档
vectorStore.add(new Document()
    .setId("1")
    .setDocument("Feat 是一个高性能的 Java Web 框架")
    .setMetadata(Map.of("type", "introduction")));

// 搜索相似文档
List<Document> results = vectorStore.search("什么是 Feat？");
```

## 总结

Feat AI 是一个功能丰富、性能优越的智能对话框架，能够满足多种 AI 应用场景的需求。通过简单的 API 和灵活的配置选项，开发者可以快速构建高效的智能对话应用。其高性能、易用性和扩展性使其成为 AI 应用开发的理想选择。

## 应用场景

- **智能客服**：实时回答用户问题，提升客户满意度。
- **虚拟助手**：帮助用户完成日常任务，提高效率。
- **内容生成**：生成高质量的文章、报告等文本内容。
- **知识问答**：基于知识库的智能问答系统。
- **代码助手**：帮助开发者编写和审查代码。